#ifndef __HDRMANAGER_HPP__
#define __HDRMANAGER_HPP__

#include <string>
#include <map>

class HDRImageObject;

typedef enum HDRManagerException
{
	HDRM_EX_NAME_NOT_FOUND,
	HDRM_EX_UNKNOWN

} HDRManagerEx;

class HDRManager
{
public:
	static bool              createInstance();
	static void              destroyInstance();
	static HDRManager*       getInstance();

	bool                   loadHDR(std::string fileName);
	bool                   unloadHDR(std::string fileName);
	const HDRImageObject*  getHDR(std::string fileName);
	const std::string&     getObjectName(const HDRImageObject* pHDR);

private:
	HDRManager(){};
	HDRManager(HDRManager const&){};

	HDRManager& operator=(HDRManager const&){};

	~HDRManager();

	bool   isAlreadyLoaded(std::string fileName);

	static HDRManager*                      m_pInstance;
	std::map<std::string, HDRImageObject*>  m_hdrMap;
};

#endif //__HDRMANAGER_HPP__

//EOF
